#pragma once
#include "CImg.h"
#include <vector>

class CPolygon;

typedef int LocationT;
typedef unsigned char ColorT;
typedef float OpacityT;


typedef cimg_library::CImg<ColorT> Image;

typedef cimg_library::CImg<LocationT> Verticles;

typedef std::vector<CPolygon*> Polygons;



const LocationT width = 200;
const LocationT height = 200;
const int channelsNumber = 3;
const int maxPointsPerPolygon = 80;
const int minPointsPerPolygon = 3;
const int maxPolygons = 8000;
const float opacityMin = 0.12;
const float opacityMax = 0.4;


const int addNewPolygonFrequency = 700;
const int removePolygonFrequency = 1500;
const int movePolygonFrequency = 700;
const int addNewPointFrequency = 1500;
const int removePointFrequency = 1500;
const int mutateVerticleFrequency = 1500;
const int mutateColorFrequency = 1500;
const int mutateOpacityFrequency = 1500;

const int newPointDivergence = 2;
const int movePointDivergence = 5;



//std::ofstream file("log.log");